Kurs: IT-Security
2.x Zugangsschutz (Authentikation und Authentifizierung)
Authentisierung über Name und Passwort (Sequenzdoku 4.x)
2.1
Der Kunde wünscht nun einen "möglichst" sicheren Zugangs-Schutz seiner sub-Verzeichnisse
(durch eine Kombination sinnvoller Mechanismen)
Die Benutzername/Passwort-Abfragen nach RFC 2617
sind per "Basic Authentification"
oder Digest-Authentifikation möglich.
gegen unerlaubte Zugriffe.
Schütze die Unterverzeichnisse ./sub1 und ./sub2 durch unterschiedliche Kennungen
Zeichne die Login-Vorgänge mit wireshark auf und analysiere die Sicherheit der Kommunikation.
Bewerte zuvor ob ein Einsatz von Dual-Use-Software nach §202c StGB (Hackerparagraf) erlaubt ist.
Überprüfe nun die Sicherheit der .htpasswd Dateien (und deren Hash Werte) mit John the Ripper (http://openwall.info/wiki/john).
John The Ripper ist in der Lage DES, Traditional, BSDI, Kerberos, Microsoft LM, MD5 und Blowfish Hashwerte
durch Wörterbuch/Brute-Force-Angriffe zu überprüfen bzw. zu knacken.
Hinweis: Der Apache kann Passwortdateien in folgenden Formaten lesen: https://httpd.apache.org/docs/2.4/misc/password_encryptions.html
Wo sucht der Apache nach Usernamen und Passwörtern?
In welcher Datei können extern (ausserhalb der httpd.conf) Direktiven abgelegt werden?
Welche Direktive aktiviert/deaktiviert diese externe Datei?
Unter welchen Bedingungen sind Kennungen (user:passwort) ermittelbar?
Welche Alternativen zur Passwortablage werden in der Praxis verwendet
und welche Folgen hat das für den Client, PW-Transport, Server und Angreifer?
Ein kleines Rechenbeispiel zur Passwortsicherheit (wenn die Passwörter als MD5-Hash vorliegen).
Anzahl_nutzbarer_ZeichenPW-Länge = Kombinationsmöglichkeiten
z.B. Anzahl_nutzbarer_Zeichen
a-z=26 (Alphabet nur mit Kleinbuchstaben)
a-z A-Z=52 (Alphabet mit Klein/Gross-Buchstaben)
a-z A-Z 0-9=62 (Klein/Gross-Buchstaben mit Zahlen)
Bei einem Brute-Force-Angriff nach folgender Tabelle:
Maximale Rechenzeit eines Brute-Force-Angriffs bei 1 Milliarde Schlüsseln pro Sekunde
266 = 308 Mio (6-Zeichen Kleinbuchstaben in 1/3 Sekunde knackbar)
268 = 208.827 Mio (8-Zeichen Kleinbuchstaben in 4 Min. knackbar)
628 = 218.340.105 Mio (8-Zeichen klein+gross+Zahlen in 3 Tagen knackbar)
john --test (Benchmarking) zeigt wie schnell das akt. System Passwörter prüfen kann
Vergleiche die Sicherheit der AuthBasic-Passwortdatei mit dem unter Windows genutzten SAM-Verfahren (Security Accounts Manager).
Führe dazu eine Windows-Sam-Passwortüberprüfung durch.
- mit Wörterbüchern/Dictionarys (1. Dump-Tools: samdump2, pwdump 2. PW-Prüfung: hashcat und john)
z.B. john --format=nt --wordlist=/var/lib/john/wordlists/all SAM-Hashdump.txt
z.B. hashcat --force -m 0 -a 0 -o cracked.txt hashes.txt /var/lib/john/wordlists/all
- mit Hash-Tabellen/Rainbow-Tables (mit Tools wie ophcrack)
Die Windows-Passwortüberprüfung kann
- direkt an installierten Systemen ...
- in einer virtuellen gebooteten Umgebung (Virtualbox/VM-Ware) ...
- an einer gemounteten (mit qemu) virtuellen .vmdk oder .vdi BS-Festplatte ...
- mit Hilfe der SAM-Datei (+system) aus %systemroot%\System32\config\ ...
- oder durch bereits zur Verfügung stehende Hashdump’s der SAM (im sub3-Ordner) durchgeführt werden
- Welche Unterschiede (zur Basic-Authentification) existieren und welche Auswirkungen hat das?
Überprüfe auch die Modifikations-Sicherheit der Passwortdateien
Ein schreibender Zugriff auf die SAM nicht gebooteter Systeme ist über ein
- PXE-Netzwerkboot
- DVD-Boot (WinPE/Linux-Livesystem)
- USB-Boot
- Bei virt. Systemen über ein mounten der LW-Datei
modprobe nbd max-part=4
qemu-nbd -c /dev/nbd0 Meine.vmdk (o. Meine.vdi)
mount /dev/nbd0p2 /mnt/ (für 2. Partition)
möglich
z.B. ermöglichen die Programme chntpw und sampasswd einen direkten Zugriff auf die SAM
Ein schreibender Zugriff auf gebootete Systeme ist
über ein Ersetzen der Utilman.exe durch cmd.exe möglich
- Nach abgesichertem Neustart ohne Schutzfunktion startet "Ease of access" cmd.exe
- Ein net user ... kann Userkonten bearbeiten
- Ein PwDump7.exe kann die PW-Hashwerte extrahieren
- Ein mimiKatz.exe ermöglicht den Zugriff auf Tickets und PW-Hashwerte
ebenso wie ein Meterpreter-Payload (mit Kiwi's mimiKatz) ein lsa_dump_sam
- Unter welchen Bedingungen war es möglich Passwörter zu modifizieren?
- War es möglich neue Kennungen anzulegen?
- Wie ist es möglich dieses in der Praxis zu verhindern?
Zugriff nur für festgelegte Absenderadressen (Sequenzdoku 4.x)
2.3
Schütze den Ordner ./sub3/
(mit einer Client IP-Adressauswertung) gegen unerlaubte Zugriffe.
Schränke den Zugriffa auf [d]einen Arbeitsplatz ein.
Info: Bisher wurde der Client-Zugriff ausschließlich mit Allow und
Deny reglementiert.
Ab dem Apache 2.4 steht aber die
Require Direktive nicht nur für
user's und
group's, sondern auch für
ip's zur Verfügung.
- Was konnte/kann Require (Beispiele)?
Require valid-user
Require user userid [userid] ...
Require group group-name [group-name] ...
Require env env-var [env-var] ...
Require method http-method [http-method] ...
Require expr expression
Require ip 10.1.2.3
Require ip 10 172.20 192.168.2
Require ip 10.1.0.0/255.255.0.0 10.2.0.0/16
Require ip 2001:db8::a00:20ff:fea7:ccea
Require ip 2001:db8:1:1::a
Require ip 2001:db8:2:1::/64
Require ip 2001:db8:3::/48
Require host example.org
Require host .net example.edu
Require all granted
Require all denied
Require local